package cn.hill4j.tool.spring.ext.core;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
/**
  * ClassName: BeanDefinitionPostProcessor
  * Description: springbean Definition信息扩展修改接口
  * @author hillchen
  * Date 2023/8/8
  * @version: 1.0
  */
public interface BeanDefinitionPostProcessor {
    /**
     * @author hillchen
     * Description: 判断BeanDefinition信息是否需要修改，为true则需要修改
     * Date 2023/8/8 23:30
     * @param beanDefinition bean定义信息
     * @return boolean
     **/
    boolean supportResetDefinition(BeanDefinition beanDefinition);
    /**
     * @author hillchen
     * Description: 执行修改BeanDefinition信息操作
     * Date 2023/8/8 23:31
     * @param beanName beanName
     * @param beanDefinition bean定义信息
     * @param beanFactory beanFactory
     **/
    void resetDefinition(String beanName, BeanDefinition beanDefinition, ConfigurableListableBeanFactory beanFactory);
}
